package br.com.fsa.aplication.Gui;

import java.util.ArrayList;
import java.util.Dictionary;
import java.util.List;

import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.bean.SessionScoped;

import org.primefaces.model.chart.CartesianChartModel;
import org.primefaces.model.chart.ChartSeries;

import br.com.fsa.aplication.Delegate.BusinessDelegate;
import br.com.fsa.aplication.Model.DadoRelatorioVO;
import br.com.fsa.aplication.Services.ServiceDTO;

@ManagedBean(name = "relNotasMBean")
@RequestScoped
public class relNotasMBean
{
	private Integer tipo = 1;
	private Integer ano = 2012;
	private CartesianChartModel categoryModel;

	private Integer min = 0;

	public Integer getMin()
	{
		return min;
	}

	public void setCategoryModel(CartesianChartModel categoryModel)
	{
		this.categoryModel = categoryModel;
	}

	public CartesianChartModel getCategoryModel()
	{
		return categoryModel;
	}

	public void setMin(Integer min)
	{
		this.min = min;
	}

	public Integer getMax()
	{
		return max;
	}

	public void setMax(Integer max)
	{
		this.max = max;
	}

	private Integer max = 0;

	public Integer getTipo()
	{
		return tipo;
	}

	public void setTipo(Integer tipo)
	{
		this.tipo = tipo;
	}

	public Integer getAno()
	{
		return ano;
	}

	public void setAno(Integer ano)
	{
		this.ano = ano;
	}

	// construtor
	public relNotasMBean()
	{
		processaLista();
		// carregaDados();
	}

	@SuppressWarnings("unchecked")
	private ArrayList<DadoRelatorioVO> getDados(long logisitica)
	{
		try
		{
			BusinessDelegate _bd = BusinessDelegate.getInstance();
			ServiceDTO _dto = new ServiceDTO();
			_dto.set("tipo", tipo);
			_dto.set("ano", ano);
			_dto.set("logistica", logisitica);
			ArrayList<DadoRelatorioVO> lista = (ArrayList<DadoRelatorioVO>) _bd
					.getDadosGraf(_dto).get("resposta");

			return lista;

		} catch (Exception e)
		{
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return null;
	}

	private void processaLista()
	{
		int qtd = 200;
		categoryModel = new CartesianChartModel();
		ChartSeries areaDados1 = new ChartSeries();
		areaDados1.setLabel("ActiviaLog");
		ChartSeries areaDados = new ChartSeries();
		areaDados.setLabel("SmartWay");

		ArrayList<DadoRelatorioVO> _lista = getDados(new Long(1));

		for (DadoRelatorioVO dadoRelatorio : _lista)
		{
			areaDados.set(dadoRelatorio.getDescricao(),
					dadoRelatorio.getValor());

			if (dadoRelatorio.getValor() > qtd)
			{
				qtd = dadoRelatorio.getValor();
			}
		}

		_lista = getDados(new Long(2));

		for (DadoRelatorioVO dadoRelatorio : _lista)
		{
			areaDados1.set(dadoRelatorio.getDescricao(),
					dadoRelatorio.getValor());

			if (dadoRelatorio.getValor() > qtd)
			{
				qtd = dadoRelatorio.getValor();
			}

		}

		categoryModel.addSeries(areaDados);
		categoryModel.addSeries(areaDados1);

		setMax(((int) (qtd * 1.5)));
	}

	public String pesquisar()
	{
		System.out.println(tipo);
		System.out.println(ano);
		processaLista();

		return "";
	}

}
